package com.easysoft.framework.patent.model;

import com.easysoft.commons.utils.JSONUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

public class SysPatent implements Serializable {

    /** 主键 */
    private String id;

    /** 申请号 */
    private String applicationNumber;

    /** 授权入库日 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date accreditTime;

    /** 申请日 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date applyTime;

    /** 发明名称 */
    private String inventionName;

    /** 代理机构代码 */
    private String agencyCode;

    /** 代理机构名称 */
    private String agencyName;

    /** 主分类号 */
    private String mainNumber;

    /** 专利权人名称 */
    private String patentName;

    /** 专利权人邮编 */
    private String patentAdder;

    /** 专利权人地址 */
    private String patentEmile;

    /** 专利类型 */
    private String patentType;

    /** 专利权人类型 */
    private String patentHolder;

    /** 省份名称 */
    private String provincep;

    /** 城市 */
    private String city;

    /** 推荐/正常/禁用 默认禁用 */
    private Integer isStatus;

    /** 创建时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    private static final long serialVersionUID = 1L;

    /**
     * 返回主键
     *
     * @return ID
     */
    public String getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 返回申请号
     *
     * @return APPLICATION_NUMBER
     */
    public String getApplicationNumber() {
        return applicationNumber;
    }

    /**
     * 设置申请号
     *
     * @param applicationNumber 申请号
     */
    public void setApplicationNumber(String applicationNumber) {
        this.applicationNumber = applicationNumber;
    }

    /**
     * 返回授权入库日
     *
     * @return ACCREDIT_TIME
     */
    public Date getAccreditTime() {
        return accreditTime;
    }

    /**
     * 设置授权入库日
     *
     * @param accreditTime 授权入库日
     */
    public void setAccreditTime(Date accreditTime) {
        this.accreditTime = accreditTime;
    }

    /**
     * 返回申请日
     *
     * @return APPLY_TIME
     */
    public Date getApplyTime() {
        return applyTime;
    }

    /**
     * 设置申请日
     *
     * @param applyTime 申请日
     */
    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    /**
     * 返回发明名称
     *
     * @return INVENTION_NAME
     */
    public String getInventionName() {
        return inventionName;
    }

    /**
     * 设置发明名称
     *
     * @param inventionName 发明名称
     */
    public void setInventionName(String inventionName) {
        this.inventionName = inventionName;
    }

    /**
     * 返回代理机构代码
     *
     * @return AGENCY_CODE
     */
    public String getAgencyCode() {
        return agencyCode;
    }

    /**
     * 设置代理机构代码
     *
     * @param agencyCode 代理机构代码
     */
    public void setAgencyCode(String agencyCode) {
        this.agencyCode = agencyCode;
    }

    /**
     * 返回代理机构名称
     *
     * @return AGENCY_NAME
     */
    public String getAgencyName() {
        return agencyName;
    }

    /**
     * 设置代理机构名称
     *
     * @param agencyName 代理机构名称
     */
    public void setAgencyName(String agencyName) {
        this.agencyName = agencyName;
    }

    /**
     * 返回主分类号
     *
     * @return MAIN_NUMBER
     */
    public String getMainNumber() {
        return mainNumber;
    }

    /**
     * 设置主分类号
     *
     * @param mainNumber 主分类号
     */
    public void setMainNumber(String mainNumber) {
        this.mainNumber = mainNumber;
    }

    /**
     * 返回专利权人名称
     *
     * @return PATENT_NAME
     */
    public String getPatentName() {
        return patentName;
    }

    /**
     * 设置专利权人名称
     *
     * @param patentName 专利权人名称
     */
    public void setPatentName(String patentName) {
        this.patentName = patentName;
    }

    /**
     * 返回专利权人邮编
     *
     * @return PATENT_ADDER
     */
    public String getPatentAdder() {
        return patentAdder;
    }

    /**
     * 设置专利权人邮编
     *
     * @param patentAdder 专利权人邮编
     */
    public void setPatentAdder(String patentAdder) {
        this.patentAdder = patentAdder;
    }

    /**
     * 返回专利权人地址
     *
     * @return PATENT_EMILE
     */
    public String getPatentEmile() {
        return patentEmile;
    }

    /**
     * 设置专利权人地址
     *
     * @param patentEmile 专利权人地址
     */
    public void setPatentEmile(String patentEmile) {
        this.patentEmile = patentEmile;
    }

    /**
     * 返回专利类型
     *
     * @return PATENT_TYPE
     */
    public String getPatentType() {
        return patentType;
    }

    /**
     * 设置专利类型
     *
     * @param patentType 专利类型
     */
    public void setPatentType(String patentType) {
        this.patentType = patentType;
    }

    /**
     * 返回专利权人类型
     *
     * @return PATENT_HOLDER
     */
    public String getPatentHolder() {
        return patentHolder;
    }

    /**
     * 设置专利权人类型
     *
     * @param patentHolder 专利权人类型
     */
    public void setPatentHolder(String patentHolder) {
        this.patentHolder = patentHolder;
    }

    /**
     * 返回省份名称
     *
     * @return PROVINCEP
     */
    public String getProvincep() {
        return provincep;
    }

    /**
     * 设置省份名称
     *
     * @param provincep 省份名称
     */
    public void setProvincep(String provincep) {
        this.provincep = provincep;
    }

    /**
     * 返回城市
     *
     * @return CITY
     */
    public String getCity() {
        return city;
    }

    /**
     * 设置城市
     *
     * @param city 城市
     */
    public void setCity(String city) {
        this.city = city;
    }

    /**
     * 返回推荐/正常/禁用 默认禁用
     *
     * @return IS_STATUS
     */
    public Integer getIsStatus() {
        return isStatus;
    }

    /**
     * 设置推荐/正常/禁用 默认禁用
     *
     * @param isStatus 推荐/正常/禁用 默认禁用
     */
    public void setIsStatus(Integer isStatus) {
        this.isStatus = isStatus;
    }

    /**
     * 返回创建时间
     *
     * @return CREATE_TIME
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return JSONUtils.object2Json(this);
    }
}